Methods and apparatus to provide contact management with directory assistance technical field

ABSTRACT

Methods and an apparatus for providing contact management with directory assistance. An example method includes obtaining, via a processor, a billing record generated to track usage of a directory assistance service by a caller, the billing record comprising a first data object conveyed to the caller in association with the usage of the directory assistance service; querying, via the processor, a first directory with the first data object of the billing record to obtain listing information associated with the first data object; and conveying a contact record including the obtained listing information to a device associated with the caller.

RELATED APPLICATION

This patent arises from a continuation of U.S. patent application Ser.No. 11/553,781, filed Oct. 27, 2006, now U.S. Pat. No. ______, which ishereby incorporated herein by reference in its entirety.

TECHNICAL FIELD

This disclosure relates generally to contact management and, moreparticularly, to methods and apparatus for providing contact managementwith directory assistance.

BACKGROUND

When using communications systems, individual users are generallyinterconnected via user devices that are associated with a uniqueidentifier to enable communication among multiple nodes within thecommunication systems. For example, in a telecommunication system, theidentifier is commonly referred to as a “telephone number,” which isdialed or inputted with an originating user device to reach a userdevice (e.g., a telephone) at a particular network termination pointassociated with the identifier. Given the enormous number of userdevices and users within communications systems, each user may desire toretain these identifiers in an accessible medium, such as an electronicaddress book. Electronic address books may be networked to allowaccessibility from a plurality of user devices or transferred to storein local memory of a user device. Electronic address books are commonlyformatted in a data structure relating one or more records with varyinginformation, such as addresses, names, etc.

Directory assistance services are commonly used in communication systemsto provide listing information to communication systems users.Generally, directory assistance services use a directory or a databasecontaining names, addresses, and telephone numbers for respective users.For example, in the North American public switched telephone network, auser desiring particular listing information dials a directoryassistance access code, for example “411,” and connects with a directoryassistance service. The user generally provides listing information suchas a name (e.g., business name, surname, etc.) and/or localityinformation (e.g., zip codes, state names, cities, etc.) associated witha desired listing record. If the directory assistance service matchesthe listing information to a particular listing record, a human operatoror a recorded message file communicates additional listing information(e.g., a telephone number) associated with the particular listing recordto the user. However, to use the requested telephone number in thefuture, the user must memorize the listing information, manually recordthe listing information, or call back to the directory assistanceservice.

After the directory assistance service communicates the additionallisting information to the user, the directory assistance servicecreates a billing feed to charge a particular user for the service. Thisbilling feed may include a phone number or any other unique accountidentifier for the user and the phone number provided for the matchedlisting. Generally, this billing feed is sent to a customer recordsinformation system (“CRIS”), which bills and records the directoryservice usage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of an example communication system.

FIG. 2 is a schematic illustration of an operator position of FIG. 1.

FIG. 3 is a schematic illustration of an example directory assistance(“DA”) management system of FIG. 1.

FIG. 4 illustrates an example directory data structure, which may bestored in the directory server(s) of FIG. 1.

FIG. 5 illustrates a contact directory data structure, which may bestored in the contact directory of FIG. 1.

FIG. 6 is an example sequence diagram of the example communicationsystem of FIG. 1.

FIG. 7 is a flow chart representation of example process that may beexecuted to implement the operator position of FIG. 1.

FIG. 8 is a flow chart representation of example process that may beexecuted to implement the DA management system of FIG. 1.

FIG. 9 is a schematic illustration of an example processing system thatmay be used to execute the example processes of FIGS. 7 and 8 and/or toimplement the example operator position and DA management system of FIG.1.

DETAILED DESCRIPTION

An example communication system 100 to provide directory assistance withcontact management for users of the example system 100 is illustrated inFIG. 1. The example system 100 of FIG. 1 is useful to provide directoryassistance with contact management among diverse user devices (e.g.,analog phones, digital phones, voice-over-Internet-Protocol (“VoIP”)phones, cellular phones, personal computers, personal digital assistants(“PDAs”), MP3 players, set-top-boxes (“STBs”), etc.). Additionally, theexample system 100 of FIG. 1 is useful to provide contact managementamong many users, each of whom may be associated with one or more userdevice(s).

The example communication system 100 is configured to provide contactmanagement by storing listing information associated with the use of adirectory assistance (“DA”) service to a network device (e.g., adatabase server, a file server, etc.) that can be accessed ortransferred among a plurality of user devices. For example, a directoryservice provider may include an automated system or human operator thatresponds to a user who places a telephone call. The user may thenrequest a telephone number by providing particular listing information(e.g., city name, state name, business name, surname, etc.) associatedwith the telephone number. The example automated system or humanoperator then queries one or more directories or databases to match theprovided listing information with a telephone number. When a match isdetermined, the example automated system or human operator provides therequested telephone number with any other listing information to theuser.

As described below, the listing information provided to the user (e.g.,a telephone number) and other associated listing information (e.g.,mailing address, city name, state, etc.) can be stored as a contactrecord and associated with the user in a network device (e.g., adatabase server, a file server, a network address book, etc.). In oneexample embodiment, the example communication system 100 determinesadditional listing information with an example reverse lookup functionusing one or more data objects (e.g., a telephone number) from a billingrecord generated from the usage of the directory assistance service. Inan additional example embodiment, the example communication system 100is configured to transfer this stored information from the networkdevice to one or more user devices associated with a particular user onan aperiodic basis (e.g., based on event-based procedure(s), etc.) or aperiodic basis (e.g., based on scheduled procedure(s), etc.).

Turning to FIG. 1, the example communication system 100 FIG. 1 is shownas a simplified block diagram with components of hardwired and/orwireless communications networks 102 and 103. FIG. 1 also shows theinteraction between user devices 112, 114, 116, and 118 associated witha particular user 110, an operator position 130, a directory 132, adirectory assistance (“DA”) management system 134, and a contactdirectory 136. The example communication system 100 is illustrativelyshown with the network 102 configured as an example public switchedtelephone network, which communicatively couple the user 110 with theoperator position 130 through user devices 112 and 114, switches 104 and109, and communication links 140, 142, and 144. As is well known tothose of ordinary skill in the art, the example network 102 may beconfigured as any network that enables voice and/or data communicationamong user(s) and a directory assistance service, such as wirelessmobile telephone networks, VoIP networks, etc.

The example communication system 100 is also shown with the network 103,which may be implemented as one or more networks (e.g., local-areanetworks (“LANs”), wide-area networks (“WANs”), metropolitan-areanetworks, the Internet, digital subscriber line (“DSL”) networks, cablenetworks, power line networks, wireless communication networks, wirelessmobile telephone networks, wireless fidelity (“Wi-Fi”) networks, and/orsatellite networks). The network 103 is shown with data links 158, 156,154, and 152, which communicatively couple the contact directory 136,SSP 104, and user devices 116 and 118. The data links 152-158 may employapplications, protocols, networks, and/or hardware to communicativelycouple each of the user devices 112-118 including, for example,hardwired or wireless communication schemes. For example, the userdevice 116 may be implemented with a personal computer or set-top-boxthat communicatively couples with the contact directory 136 and datalink 154 via the Internet to exchange data using a common markuplanguage, such as HyperText Markup Language (“HTML”), Extensible MarkupLanguage (“XML”), etc. Additionally or alternatively, the user device118 may be implemented with a mobile phone that communicatively coupleswith the contact directory 136 and data link 154 via a WirelessApplication Protocol and a Wireless Markup Language.

As shown, each of the communication links 140 and 142 is coupled with aterminating user device 112 and 114, which may include PDAs, cellulartelephones, personal computers, television set-top-boxes, and telephone(e.g., an analog telephone, a digital telephone, a VoIP telephone), orany other user device that enables voice and/or data communication overthe public switched telephone network 102. Similarly, the additionalnetwork 103 is shown coupled with terminating devices 116 and 118, whichmay include PDAs, cellular telephones, personal computers, televisionset-top-boxes, and telephone (e.g., an analog telephone, a digitaltelephone, a VoIP telephone), routers, switches, or any other devicethat enables voice and/or data communication over the network 103.

In the example communication system 100, each of the example userdevices 112-118 has one or more unique device identifiers to distinguishthe respective example user devices 112-118 from one another as well asfrom other user devices, thereby enabling communication between multiplenodes on the network. A device identifier may generally identify anetwork termination point that connects to one or more user devices(e.g., a telephone number may connect a number of telephones). Thedevice identifier associated with a user device may be a uniquealpha-numeric or numeric identifier (e.g., a telephone number, a byteaddress, an Internet Protocol (“IP”) Address, a Mobile IdentificationNumber, etc.). For example, each of the user devices 112 and 114 coupledwith the PSTN 102 may be assigned a ten digit number that is associatedwith a specific telephone line 140 and 142 shown in FIG. 1. To identifyone or more user devices (e.g., the user devices 112-118) with aparticular user (e.g., the user 110), the device identifiers may beassociated with a single record in a data structure. As described below,the record may then be uniquely distinguished and associated with aparticular user by a user identifier, such as a user name, a usernumber, and/or any other unique identifier. Also described below, one ormore user devices and device identifiers may be associated with multipleusers and, thus, multiple records in a data structure, such as atelephone service and telephone number may be shared with multipleusers.

The PSTN 102 incorporates the advanced intelligent network (“AIN”). Someof the components of the advanced intelligent network are shown in FIG.1 to illustrate at least a part of the advanced intelligent network(“AIN”) 102 of a typical local exchange carrier. The advancedintelligent network (“AIN”) uses the signaling system 7 (“SS7”) networkfor signal or system control message transport. The components thereofare well known to those skilled in the art. Generally, a plurality ofcentral offices is provided in a typical public switched telephonenetwork 102. As shown in FIG. 1, a central office may include anelectronic switch 104 known to those skilled in the art as a serviceswitching point (“SSP”). The number of SSP switches depends on thenumber of users to be served by the public switched telephone network.An SSP is the AIN component of a typical electronic central officeswitch used by a local exchange carrier. The terms “SSP” and “switch”are generally used interchangeably and are understood to refer to atelecommunications switch having AIN capability and which may beutilized for connecting communication links or trunk circuits 146.

Much of the intelligence, and the basis for many of the enhancedfeatures of the PSTN 102, resides in the local service control point(“SCP”) 108 that is coupled to signal transfer point (“STP”) 106 and theSSP 104 via SS7 data links 148 and 149. Among the functions performed bythe service control points is maintenance of network databases used inproviding enhanced services. Service control points, such as SCP 108,normally implement high volume routing services, such as callforwarding, number translating, and routing. In most local exchangecarrier networks, service control points are only used for database lookup and routing services that take place prior to the logical completionof the call (i.e., the provision of a ringing signal to the called userand ring back to the calling user).

Directory assistance is a well-known service in public switchedtelephone network 102, and is generally identified in North America witha telephone number, such as “411” or “555-1212.” Directory assistance asdiscussed herein may also be configured on the networks, as discussedabove in connection with network 103 of FIG. 1 in the examplecommunication system 100 of FIG. 1.

To provide directory assistance services, the PSTN 102 of FIG. 1includes a switch 109 that is coupled with an operator position 130through the data link 144. The switch 109 is shown as an example TrafficOperator Position System (“TOPS”) switch to provide call routing andswitching along with directory assistance services. In the PSTN 102, theuser 110 may dial a particular telephone number on the user device 112,which is routed via the SSP 104 and the TOPS switch 109 tocommunicatively couple the user 110 with hardware, software, and/orfirmware used by a human operator at the operator position 130.Similarly, the user 110 may be routed to a voice activated system (notshown) configured with hardware, software, and/or firmware to providedirectory assistance via text-to-speech (“TTS”) or speech recognitionsystems. An example operator position 130 is discussed in detail belowin connection with FIG. 2.

The example communication system 100 also includes directory server(s)132 that can be queried to obtain listing information via the data links160 and 162, which communicatively couple the directory server(s) 132with the operator position 130 and the DA management system 162. Thedata links 160 and 162 may employ applications, protocols, networks,and/or hardware including, for example, hardwired or wireless Ethernetcommunication scheme, which is well known and, thus, is not described ingreater detail herein. The directory server(s) 132 include one or moredata structures including listing information such as telephone numbers,first and last names, business names, business descriptions, emailaddresses, mailing addresses, etc. The directory server(s) 132 may beimplemented using, for example, a look-up table, a relational database,or any other suitable structure for storing data. Similarly, thedirectory server(s) 132 may comprise removable media disk drives, harddisk drives, network drives, and/or any other suitable storage devices.As discussed above, a human operator or voice activated system at theoperator position 130 performs a query on the directory server(s) 132,which may include matching particular listing information such as names(e.g., person and/or business names) and localities (e.g., cities,states, zip codes, etc.).

Also illustratively shown in the example communication system 100 is adirectory assistance management system 134 that provides contactmanagement for users of DA services (e.g., the example user 110),administers billing for the usage of DA services, and/or supports anyother service to monitor and manage the usage of DA services within thePSTN 102 of FIG. 1. As discussed in detail below in connection with FIG.3, the directory assistance management system 134 may include serverssuch as, for example, application servers, database servers, fileservers, etc. Additionally, the directory assistance management system132 may contain a variety of databases such as, for example, mainframedatabases, client-server databases, and/or any other electronic store ofdata supported on any memory device (e.g., removable media disk drives,hard disk drives, network drives). The DA management system 134 is showncoupled with the TOPS switch 109, the directory server(s) 132, and thecontact directory 136 via the data links 162, 164, and 166. The datalinks 162166 may employ applications, protocols, networks, and/orhardware including, for example, hardwired or wireless Ethernetcommunication scheme, which is well known and, thus, is not described ingreater detail herein.

The example communication system 100 also includes a contact directory136, which is discussed in detail below in connection with FIG. 5. Asdiscussed below, the contact directory 136 is configured such that theuser 110 and the DA management system 134 can obtain existing contactinformation from and/or provide new contact information to the contactdirectory 136. The contact directory 136 includes one or more datastructures including contact records for a particular user, which maycontain information such as telephone numbers, first and last names,business names, business descriptions, email addresses, mailingaddresses, and/or navigational coordinates. Additionally, the contactdirectory 136 may contain other individually customizable fields thatcan be configured to store electronic information relating to aparticular person and/or business. The contact directory 136 may beimplemented using, for example, a look-up table, a relational database,or any other suitable structure for storing data. Similarly, the contactdirectory 136 may comprise removable media disk drives, hard diskdrives, network drives, and/or any other suitable storage devices. Aspreviously discussed, the contact directory 136 is coupled with thenetwork 103 and the DA management system 134 via the data links 158 and166.

FIG. 2 depicts an example operator position 130 of FIG. 1 that isconfigured to provide DA services in the example communication system100 of FIG. 1. More particularly, the example operator position 130 ofFIG. 2 includes a network interface device 202 that may include hardwareand/or software such as, for example, a data link layer of a wiredEthernet or any other suitable physical connection to communicativelycouple the data links 144 and 160; a calling line identifier 200 todetermine a particular device identifier associated with the userdevices 112 and 114 and/or the communication links 140 and 142 of FIG. 1(e.g., a telephone number for the user devices 112 and communicationlink 140 of FIG. 1); a DA processor 206 to generate a directoryassistance service record that contains one or more data objects toregister a DA service transaction (e.g., a telephone number of a user tobe billed and a telephone number of a matched listing); and one or moreinput/output device(s) 204 to enable a human operator interaction withthe operator position 130 of FIG. 2 (e.g., a keyboard, a mouse, agraphical monitor, a microphone, a speaker or headset, etc.). Also, theoperator position 130 of FIG. 2 includes a system interface 208 that mayemploy common applications and/or hardware to communicatively couple thecaller identifier 200, network interface 202, I/O devices 204, and DAprocessor 206. The operation of the example operator position 130 ofFIG. 2 is discussed below in connection with FIG. 6.

FIG. 3 depicts an example DA management system 132 of FIG. 1 configuredto provide contact management for users of DA services (e.g., theexample user 110), administer billing for the usage of DA services,and/or support any other service to monitor and manage the usage of DAservices within the PSTN 102 of FIG. 1. The DA management system 132 ofFIG. 2 includes a directory assistance service record (“DASR”) parser300 that obtains a directory assistance service record from the TOPSswitch 106 of FIG. 1 and replicates the data objects from the directoryservice record for processing in the DA management system 132 of FIG. 2;a customer records information system (“CRIS”) 302 to administer thebilling for DA service usage and any other billing services associatedwith the PSTN 102 of FIG. 1; and a contact directory processor 304provide one or more interface(s) to read data from the directory 132 ofFIG. 1 and to read and write data to the contact directory 166 ofFIG. 1. The operation of the DA management system 132 of FIG. 2 isdiscussed below in connection with FIG. 6.

FIG. 4 depicts an example directory data structure 400 that associateslisting information in the example directory server(s) 132 of FIG. 1.The example directory data structure 400 includes listing informationfields 402-414, which contain listing information to define therespective listing records 420-424. In particular, the first name field402 contains “JOHN,” the last name field 404 contains “DOE,” the mailingaddress field 406 contains “123 FIRST ST”, the city field 408 contains“FRANKLIN,” the state field 410 contains “TX,” the zip code field 412contains “77856,” and the telephone number field 414 contains“979-555-1000” to define the listing record 420. Additionally oralternatively, the listing information associated with a listing recordin the example directory data structure 400 may include email addresses,business names, business descriptions, navigational coordinates, etc.(not shown). Also, persons of ordinary skill in the art will understandthat such textual descriptions can alternatively or additionally beimplemented by codes and/or other designations.

FIG. 5 depicts an example contact directory data structure 500 thatinterrelates listing information to one or more contact recordsassociated with a particular user of the example communication system100 of FIG. 1 (e.g., example user 110 of FIG. 1), which may be locatedin the example contact directory 136 of FIG. 1. The example contactdirectory data structure 500 may be implemented as a network electronicaddress book, which can communicatively couple with one or more clients(e.g., the user devices 112-118) to transfer or synchronize one or morecontact records. The example contact directory data structure 500contains a user table 502 to store data objects that define a particularuser including a user name field 510 to uniquely identify the user, anaccount identifier field 512 to associate any number of accounts ordevice identifiers with the user, and a password field 513 to allowunique access to the contact directory 136. Also, the example contactdirectory data structure 500 includes a contact table 511 to store dataobjects in the respective fields 514-528, which associates listinginformation into a contact record that relates with a particular userdefined in the user table 502.

For example, the user table 502 contains an example record 504associated with the example user 110 of FIG. 1 that includes “USER110”in the user name field 510, “555-555-1000” (e.g., the phone numberassociated with the phone 112) in the account identifier field 512, and“USER110PASSWORD” in the password field 513. The contact table 510 isshown with an example contact record 506 associated with the exampleuser 110 of FIG. 1 that includes “USER110A” in the contact identifierfield 514, “JEAN” in the first name field 516, “DOE” in the last namefield 518, “123 FOURTH ST” in the mailing address field 520, “MADISON”in the city field 522, “FL” in the state field 524, “32340” in the zipcode field 526, and “850-555-1000” in the telephone number field 528.Persons of ordinary skill in the art will understand that such textualdescriptions can also be implemented by codes and/or other designations.The contact table 511 is also shown with an unpopulated contact record508, which is discussed in detail below. Additionally or alternatively,the listing information associated with a contact record in the examplecontact directory data structure 500 may include multiple telephonenumbers, email addresses, business names, business descriptions,navigational coordinates, or other individually customizable fields (notshown). As explained below, a user (e.g., user 110 of FIG. 1) associatedwith a particular contact record (e.g., the contact records 506 and 508of FIG. 5) can write additional information to the example contactdirectory data structure 500, which may not be available as listinginformation (e.g., private contact information).

FIG. 6 depicts an example sequence diagram illustrating thefunctionality of the communication system 100 of FIG. 1 providingdirectory assistance with contact management. The example system processof FIG. 6 begins with the user 110 of FIG. 1 dialing a particular numberwith the user device 112 of FIG. 1 to the SSP 104 of FIG. 1 (e.g., theuser 110 of FIG. 1 dials “411” into telephone 112 of FIG. 1) (step 602).The SSP 104 of FIG. 1 then routes the communication of the user device112 of FIG. 1 to the TOPS switch 109 of FIG. 1 (step 604), whichcommunicatively couples the user 110 of FIG. 1 with the example operatorposition 130 of FIG. 1 (step 606). Once the example operator position130 of FIG. 1 is communicatively coupled with the user 110 of FIG. 1,the calling line identifier 200 of FIG. 2 identifies the deviceidentifier associated with the user device 112 of FIG. 1 or other suchunique identifiers associated with the user 110 of FIG. 1. The exampleuser 110 of FIG. 1 communicates to a human operator at the operatorposition 130 of FIG. 1 particular listing information, such as localityinformation (e.g., a city name, a state name, a zip code, etc.) and/orother such listing information (e.g., a business name, a surname, afirst and last name, etc.). For example, the user 110 of FIG. 1 maycommunicate to the operator a last name of “DOE”' and a zip code of“04441.” The operator may then enter the provided listing information toone or more string objects (i.e., one or more particular sequences ofsymbols, digits, and/or other characters) using one or more of the I/Odevice(s) 204 of FIG. 2 (e.g., a mouse, a keyboard, a microphone, etc.)into the DA processor 206 of FIG. 2. The DA processor 206 of FIG. 2 mayprovide respective fields for each string to relate to a particularlisting field in the directory server(s) 132 of FIG. 1 (e.g., aone-to-one correlation with the first name field 402, the last namefield, the mailing address field 406, the city field 408, the statefield 410, the zip code field 412, and the telephone number field 414 ofFIG. 4).

Thus, the DA processor 206 of FIG. 2 queries the directory server(s) 132of FIG. 1 to determine respective matches with the entered stringobjects via, for example, an application programming interface (“API”)that enables queries and/or data exchanges between the DA processor 206of FIG. 2 and the directory server(s) 132 of FIG. 1 (step 608). Thequery of the directory server 132 of FIG. 1 may be implemented as alookup function, which is generally associated with directories toenable a query of a known a name and/or locality of a person or businessto whom a telephone number is registered, which then retrieves thetelephone number. The directory server(s) 132 of FIG. 1 analyzes, forexample, the listing records 420-424 and, in this instance, therespective last name fields 404 and zip code fields 412 to determinematching listing information. In this example, a match for the listingrecord 424 is determined from the matching last name of “DOE” and zipcode of “04441” in the respective fields 404 and 412. Thus, thedirectory server(s) 132 of FIG. 1 returns some or all of the listinginformation from fields 402-414 associated with listing record 424(e.g., first name of “JACK”, mailing address of “123 THIRD ST”, cityname of “GREENVILLE”, state name of “ME”, and/or telephone number of“207-555-1000”) to the DA processor 206 of FIG. 2 (step 610). Althoughthis example provides an exact match of listing information, thedirectory server(s) 132 of FIG. 1 may provide sequential string matchingalgorithms as near matching (e.g., matching a number of characters orsequence of characters within a string) and index matching (e.g.,ranking a subset of characters or sequence of characters within astring), or any such current or future string matching algorithms.

The DA processor 206 of FIG. 2 then sends the returned listinginformation to one or more of the I/O devices 204 to audibly, textually,or visually communicate the listing information for the human operatorand/or the user (step 612). For example, the human operator maycommunicate the matched listing information (e.g., the telephone numberof “207-555-1000”) to the user 110 of FIG. 1 and/or offer to directlyconnect the user 110 of FIG. 1. The operator may also perform severaladditional queries with new or modified listing information communicatedfrom the user. When the example communication between the user 110 ofFIG. 1 and the operator position 130 of FIG. 2 completes, the DAprocessor 206 of FIG. 2 creates a directory assistance service record toregister the usage of the DA service by the example user 110 of FIG. 1.In particular, the DA processor 206 of FIG. 2 generates a directoryassistance service record to register, for example, the telephone numberof “555-555-1000” associated with the user device 112 of FIG. 1 and thetelephone number of “207-555-1000” from the matching listing record 424of FIG. 4. Persons of ordinary skill in the art will readily understandthat the directory assistance service record may include textual orother data objects to register the use of directory assistance. Also,the directory assistance service records may include any syntacticallanguage capable of describing and structuring data objects such as, forexample, extensible markup language (“XML”), HyperText Markup Language(“HTML”), character delimited string, etc.

The DA processor 206 of FIG. 2 sends the directory assistance servicerecord from the example operator position 130 of FIG. 1 via the TOPSswitch 106 of FIG. 1 to the example DA management system 134 of FIG. 1and, more particularly, the DASR parser 300 of FIG. 3 (step 614). TheDASR parser 300 of FIG. 3 then duplicates the information from thedirectory assistance service record to simultaneously execute multipletasks. For example, the DASR parser 300 of FIG. 3 passes one or moredata objects from the directory assistance service record to the CRIS302 of FIG. 3 to update a particular user account in a financialaccounting system (e.g., debit the accrued expense account associatedwith user 110 of FIG. 1 to reflect the usage of directory assistance)(step 616). The DASR parser 300 of FIG. 3 also passes one or more dataobjects from the directory assistance service record (e.g., thetelephone number of “555-555-1000” associated with the telephone 112 ofFIG. 1) to the contact directory processor 304 of FIG. 3 (step 618).

The contact directory processor 304 of FIG. 3 then queries the contactdirectory 136 of FIG. 1 to determine if user 110 of FIG. 1 has anassociated user record in the contact directory 136 of FIG. 1 (step620). For example, the contact directory processor 304 of FIG. 3 sendsthe string of “555-555-1000” to the contact directory 136 of FIG. 1,which analyzes the user records and, in particular, the accountidentifier field 512 to determine a match for a record associated withthe example user 110 of FIG. 1. In this example, a match for the userrecord 504 is determined, which identifies one or more recordsassociated with user 110 of FIG. 1 (e.g., the contact records 506 and508 of FIG. 5). The contact directory 136 of FIG. 1 then returns a logicvalue or other such signifier to the contact directory processor 304 ofFIG. 3 to identify an associated user record, for example, the username“USER110” or the contact identifier “USER110B” for the user 110 of FIG.1 (step 622). Alternatively, the contact directory may return a Booleanvalue such as, for example, a false signifier (e.g., “0”) for nodetermined match or a true signifier (e.g., “1”) for a determined match.

Although this example provides an exact match of the account identifierfield 512, the contact directory 136 of FIG. 1 may provide sequentialstring matching algorithms as near matching (e.g., matching a number ofcharacters or sequence of characters within a string) and index matching(e.g., ranking a subset of characters or sequence of characters within astring), or any such current or future string matching algorithms. Also,the contact directory processor 304 of FIG. 3 may query the contactdirectory 136 of FIG. 1 with any syntactical language capable ofdescribing and structuring data objects from a directory assistanceservice record such as, for example, extensible markup language (“XML”),HyperText Markup Language (“HTML”), or any other such markup language orcharacter delimited string.

The contact directory processor 304 of FIG. 3 also uses one or more dataobjects from the directory assistance service record (e.g., thetelephone number of “207-555-1000” associated with the matching listingrecord 424 of FIG. 4) to query the directory server(s) 132 of FIG. 1(step 624). The query of the contact directory processor 304 of FIG. 3may be implemented as a reverse lookup function, which is generallyassociated with directories to enable a query with a known telephonenumber, which then retrieves a name and/or address of a person orbusiness to whom the telephone number is registered. The directoryserver(s) 132 of FIG. 1 analyze, for example, the listing records420-424 and, in this instance, the telephone number field 414 of FIG. 4to determine matching listing information. In this example, a match forthe listing record 424 is determined from the string of “207-555-1000”in the telephone number field 414. Thus, the directory server(s) 132 ofFIG. 1 returns some or all of the listing information from fields402-414 associated with listing record 424 (e.g., first name of “JACK”,last name of “DOE”, mailing address of “123 THIRD ST”, city name of“GREENVILLE”, state name of “ME”, zip code of “04441” and/or telephonenumber of “207-555-1000”) to the contact directory processor 304 of FIG.3 (step 626). As the telephone number originated from the directoryserver(s) 132 of FIG. 1 and, more particularly, the directory datastructure 400 of FIG. 4, the contact directory processor 304 of FIG. 3is provided a relative certainty for determining matching listinginformation using the example reverse look-up function described above.

With the additional listing information returned from the query and theidentification of user record 504 of FIG. 5 in the contact directory 136of FIG. 1, the contact directory process 304 of FIG. 3 stores thereturned listing information as contact record 508 in the contactdirectory 136 of FIG. 1 (step 628). In particular, the contact directoryprocessor 304 of FIG. 3 stores the returned listing informationassociated with listing record 424 of FIG. 4 (e.g., “JACK” from thefirst name field 402, “DOE” from the last name field 404, “123 THIRD ST”from the mailing address field 406, “GREENVILLE” from the city field408, “ME” from the state field 410, “04441” from the zip code field 412,“207-555-1000” from the telephone number field 414 of FIG. 4) to therespective fields 516-528 in contact record 508 of FIG. 5. Thus, listinginformation provided from directory service usage and additional listinginformation associated with the listing record is stored as a contactrecord and associated with the example user 110 of FIG. 1 in the contactdirectory 136 of FIG. 1. The contact directory processor 304 may also beconfigured to identify a contact record as a contact stemming from a DAservice request, for example, the contact table 510 of FIG. 5 may onlystore contacts records associated with DA service requests and/or anadditional field in contact table 510 may be populated with “DA contact”(not shown).

As previously stated, the example communication system 100 of FIG. 1 maybe configured to transfer the content of the contact directory 136 ofFIG. 1 to an associated user device prior to and/or after a userrequest. For example, the user device 112 of FIG. 1 may be a VoIPtelephone, which may on an aperiodic basis (e.g., based on event-basedprocedure(s), etc.), a periodic basis (e.g., based on scheduledprocedure(s), etc.), or real-time basis to obtain or receive updatedcontacts from the contact directory 136 of FIG. 1. Similarly, thecontact directory 136 of FIG. 1 may be implemented with API(s) to enableusers to communicatively couple and interact with the contact directory136 of FIG. 1. Example of such interfaces may include providing graphicuser interfaces via a browser or other such common programs to enableuser interaction on user devices, such as, for example, VoIP phones,cellular phones, personal computers, personal digital assistants, MP3players, set-top-boxes, or any other device which may audibly orvisually communicate data objects to a user.

Such an interface may provides a user (e.g., users 110 of FIG. 1) toaccess designated contact directory data structures within the examplecontact directory 136 of FIG. 1 through one or more user devices (e.g.,the user devices 112-116). The interface may use, for example, aweb-based or HTML user interface to accept input and provide output bygenerating web pages that are transported via the Internet and viewed bythe user using a web browser program, a telephone user interface toaccept input (e.g., a tone-dialed response) and provide output bygenerating telephone voice that is transported via a telephone networkand heard by the user using a telephone, or any other hardware,software, or firmware that enables the user devices 112-118 of FIG. 1 toenable inputs that allow a user to control the contact directory 136 ofFIG. 1 and outputs that allow the contact directory 136 of FIG. 1 toproduce the effects of the control. To this end, the interface also mayinclude one or more example authentication mechanisms and/or protocolsto authenticate a particular user seeking to access the example contactdirectory 136 of FIG. 1. Example mechanism(s) and/or protocol(s) thatcan be employed may include requiring entry of a unique identifier(e.g., the user name “USER110” of the user name field 510 of FIG. 5) andpassword (e.g., the password “USER110PASSWORD” of the password field 513of FIG. 5) associated with a particular data structure (e.g., thecontact data structure 500 of FIG. 5), and/or using a user device (e.g.,the user device 112 of FIG. 1) having a device identifier uniquelyassociated with a field in data structure (e.g., the account identifierfield 512 of FIG. 5). After authenticating a user, the interface enablesthe authenticated user to provide, delete, and/or change one or morefields and/or records in the contact directory 136 of FIG. 1 via theexample user devices 112-118 or other user devices, as discussed abovein the example communications system 100 of FIG. 1.

Flow diagrams representative of example processes configured toimplement the example operator position 130 of FIG. 1 and the DAmanagement system 134 of FIG. 1 are shown in FIGS. 7 and 8. In theseexamples, the processes may be implemented as machine readableinstructions in the form of one or more example programs for executionby a processor, such as the processor 805 shown in the example processorsystem 900 of FIG. 9. The processes may be embodied in software storedon a tangible medium such as a CD-ROM, a floppy disk, a hard drive, adigital versatile disk (“DVD”), or a memory associated with theprocessor 905, but persons of ordinary skill in the art will readilyappreciate that the entire processes and/or parts thereof couldalternatively be executed by a device other than the processor 905and/or embodied in firmware or dedicated hardware in a well knownmanner. For example, any or all of the example operator position 130 ofFIG. 1, the DA management system 134 of FIG. 1, the directory server(s)132 of FIG. 1, and the contact directory 136 of FIG. 1 could beimplemented by firmware, hardware, and/or software. More particularly,the calling line identifier 200, network interface 202, I/O devices 204,and DA processor 206 of the example operator position 130 of FIG. 2along with the DASR parser 300, CRIS 302, and contact directoryprocessor 304 of the example DA management system 134 of FIG. 3 may beimplemented by firmware, hardware, and/or software. Further, althoughthe example processes are described with reference to the flow diagramsillustrated in FIGS. 7-8, persons of ordinary skill in the art willreadily appreciate that many other methods of implementing the exampleprocesses may alternatively be used. For example, the order of executionof the blocks may be changed, and/or some of the blocks described may bechanged, eliminated, or combined. Similarly, the execution of theexample processes and each block in the example processes can beperformed iteratively.

The example process 700 of FIG. 7 provides an example execution sequencethat may be performed by the example operator position 130 of FIG. 1 toprovide DA service for a user (e.g., the example user 110 of FIG. 1) andrecord the use of the DA service by the user. The example process 800 ofFIG. 8 provides an example execution sequence that may be performed bythe example DA management system 134 of FIG. 1 to provide contactmanagement for a user of DA services (e.g., the example user 110),administer billing for the usage of DA services, and/or any otherelectronic services to monitor the usage of DA services.

The example process 700 of FIG. 7 begins at block 702 where the exampleoperator position 130 of FIG. 1 communicatively couples a user, who maydial a particular telephone number (e.g., “411,” “555-1212,” etc.) withan operator, which provides the example operator position 130 of FIG. 1with the device identifier associated with the user device. After theuser and the operator are communicatively coupled (block 702), theexample operator position 130 of FIG. 1 receives particular listinginformation (e.g., city name(s), state name(s), zip code(s), businessname(s), surname(s), first and last name(s), etc.) from the user. Theoperator position 130 of FIG. 1 then queries the directory server(s) 132of FIG. 1 with the user-provided listing information, which may employany such sequential string matching algorithms such as near matching(e.g., matching a number of characters or sequence of characters withina string), index matching (e.g., ranking a subset of characters orsequence of characters within a string), or any such current or futurestring matching algorithms.

The operator position 130 of FIG. 1 then receives the results of thequery from the directory server(s) 132 of FIG. 1 (block 706) andprovides the listing information to the user (block 706). If theoperator position 130 of FIG. 1 receives a communication that theprovided listing information is incorrect (e.g., a negative verbalresponse from a user, a particular tone-dialed response from a userdevice, etc.), the operator position 130 of FIG. 1 provides the user anoption for an additional directory query (block 710). If the operatorposition 130 of FIG. 1 receives a communication to indicate anadditional directory query (e.g., an affirmative verbal response from auser, a particular tone-dialed response from a user device, etc.), theoperator position 130 of FIG. 1 repeats blocks 702-708 to perform anadditional query with new or additional listing information receivedfrom the user.

If the operator position 130 of FIG. 1 receives a communication that theprovided listing information is correct (e.g., an affirmative verbalresponse, a particular tone-dialed response from a user device, etc.),the operator position 130 of FIG. 1 generates a directory assistanceservice record to register the usage of the DA service by the user(block 712), which is sent to the DA management system 134 of FIG. 1.The directory assistance service record may include one or more dataobjects such as, for example, a telephone number for the user to bebilled and a telephone number of the provided listing information. Aftera directory assistance service record is generated and sent (block 712)or the operator position 130 of FIG. 1 receives a request from the userfor no additional directory queries (e.g., an affirmative verbalresponse from a user, a particular tone-dialed response from a userdevice, etc.) (block 710), the process 700 ends and/or returns controlto a higher-level process.

The example process 800 of FIG. 8 begins at block 802 where the DAmanagement system 134 of FIG. 1 obtains a directory assistance servicerecord, which may be generated from the example operator position 130 ofFIG. 1. After obtaining the directory assistance service record (block802), the DA management system 134 of FIG. 1 duplicates one or more dataobjects from the directory assistance service record to any additionalprocesses for parallel processing. For example, the DA management system134 of FIG. 1 may duplicate the directory assistance service record to abilling process. After duplicating one or more data objects from thedirectory assistance service record to create any parallel processes(block 804), the DA management system 134 of FIG. 1 performs a query onthe contact directory 136 of FIG. 1 to determine if one or more usersspecified by the data objects from the directory assistance servicerecord has a record in the contact directory 136 of FIG. 1 (block 806).For example, the DA management system 134 of FIG. 1 may query thecontact directory 136 of FIG. 1 for a record containing a particulartelephone number or other such unique user identifier associated with auser from the directory assistance service record. The DA managementsystem 134 of FIG. 1 may also query the contact directory 136 of FIG. 1and identify a plurality of records associated with a particulartelephone number or other such unique identifier from the data object(s)of the directory assistance service record.

If the DA management system 134 of FIG. 1 does not identify a recordassociated with the user from the directory assistance service record inblock 808, the DA management system 134 of FIG. 1 ends the process 800and/or returns control to a higher-level process. Alternatively, if theDA management system 134 of FIG. 1 identifies a record associated withthe user from the directory assistance service record in block 808, theDA management system 134 of FIG. 1 performs a query of the directoryserver(s) 132 of FIG. 1 with one or more data objects from the directoryassistance service record (block 810). For example, the DA managementsystem 134 of FIG. 1 may query the directory server(s) 132 of FIG. 1with a telephone number from the directory assistance service record.

The DA management system 134 of FIG. 1 then obtains some or all of thelisting information associated with the listing record returned from thedirectory server(s) 132 of FIG. 1 (block 812). For example, the DAmanagement system 134 of FIG. 1 may obtain first names, last names,mailing addresses, city names, state names, zip codes, multipletelephone numbers, email addresses, business names, businessdescriptions, navigational coordinates, or any other listing informationthat can be stored in the directory server(s) 132 of FIG. 1. After thelisting information is obtained in block 812, the DA management system134 stores the listing information as one or more contact records in thecontact directory 136 of FIG. 1 (block 814). For example, the DAmanagement system 134 may store the listing information to a contactrecord that is associated with the user of directory assistance. The DAmanagement system 134 may also store the listing information to aplurality of contact records, each of which is associated with adifferent user record in the contact directory 136 of FIG. 1 (e.g.,multiple user records associated with a common data object, such asmultiple users associated with a telephone number). The DA managementsystem 134 also may store the new contact record in a particular tablespecified for DA service contacts or populate a particular field todifferentiate the new contact record as contact associated with DAservice usage.

FIG. 9 is a schematic diagram of an example processor platform 900 thatmay be used and/or programmed to implement any or all of the exampleoperator position 130 of FIG. 1, the DA management system 134 of FIG. 1,the directory server(s) 132 of FIG. 1, and the contact directory 136 ofFIG. 1. More particularly, any or all of the calling line identifier200, network interface 202, I/O devices 204, and DA processor 206 of theexample operator position 130 of FIG. 2 along with the DASR parser 300,CRIS 302, and contact directory processor 304 of the example DAmanagement system 134 of FIG. 3 may be implemented by the exampleprocessor platform 900. For example, the processor platform 900 can beimplemented by one or more general purpose single-thread and/ormulti-threaded processors, cores, microcontrollers, etc. The processorplatform 900 may also be implemented by one or more computing devicesthat contain any of a variety of concurrently-executing single-threadand/or multi-threaded processors, cores, microcontrollers, etc.

The processor platform 900 of the example of FIG. 9 includes at leastone general purpose programmable processor 905. The processor 905executes coded instructions 910 present in main memory of the processor905 (e.g., within a random-access memory (“RAM”) 915). The codedinstructions 910 may be used to implement the instructions representedby the example processes of FIGS. 7 and 8. The processor 905 may be anytype of processing unit, such as a processor core, processor and/ormicrocontroller. The processor 905 is in communication with the mainmemory (including a read-only memory (“ROM”) 920 and the RAM 915) via abus 925. The RAM 915 may be implemented by dynamic RAM (“DRAM”),Synchronous DRAM (“SDRAM”), and/or any other type of RAM device, and ROMmay be implemented by flash memory and/or any other desired type ofmemory device. Access to the memory 915 and 920 may be controlled by amemory controller (not shown).

The processor platform 900 also includes an interface circuit 930. Theinterface circuit 930 may be implemented by any type of interfacestandard, such as an external memory interface, serial port, generalpurpose input/output, etc. One or more input devices 935 and one or moreoutput devices 940 are connected to the interface circuit 930.

At least some of the above described example methods and/or apparatusare implemented by one or more software and/or firmware programs runningon a computer processor. However, dedicated hardware implementationsincluding, but not limited to, application specific integrated circuits,programmable logic arrays and other hardware devices can likewise beconstructed to implement some or all of the example methods and/orapparatus described herein, either in whole or in part. Furthermore,alternative software implementations including, but not limited to,distributed processing or component/object distributed processing,parallel processing, or virtual machine processing can also beconstructed to implement the example methods and/or apparatus describedherein.

It should also be noted that the example software and/or firmwareimplementations described herein are optionally stored on a tangiblestorage medium, such as: a magnetic medium (e.g., a magnetic disk ortape); a magneto-optical or optical medium such as an optical disk; or asolid state medium such as a memory card or other package that housesone or more read-only (non-volatile) memories, random access memories,or other re-writable (volatile) memories; or a signal containingcomputer instructions. A digital file attached to e-mail or otherinformation archive or set of archives is considered a distributionmedium equivalent to a tangible storage medium. Accordingly, the examplesoftware and/or firmware described herein can be stored on a tangiblestorage medium or distribution medium such as those described above orsuccessor storage media.

To the extent the above specification describes example components andfunctions with reference to particular standards and protocols, it isunderstood that the scope of this patent is not limited to suchstandards and protocols. For instance, each of the standards forInternet and other packet switched network transmission (e.g.,Transmission Control Protocol (“TCP”)/Internet Protocol (“IP”), UserDatagram Protocol (“UDP”)/IP, HyperText Markup Language (“HTML”),HyperText Transfer Protocol (“HTTP”)) represent examples of the currentstate of the art. Such standards are periodically superseded by fasteror more efficient equivalents having the same general functionality.Accordingly, replacement standards and protocols having the samefunctions are equivalents which are contemplated by this patent and areintended to be included within the scope of the accompanying claims.

This patent contemplate examples wherein a device is associated with oneor more machine readable mediums containing instructions, or receivesand executes instructions from a propagated signal so that, for example,when connected to a network environment, the device can send or receivevoice, video or data, and communicate over the network using theinstructions. Such a device can be implemented by any electronic devicethat provides voice, video and/or data communication, such as atelephone, a cordless telephone, a mobile telephone, a cellulartelephone, a Personal Digital Assistant (“PDA”), a set-top box, acomputer, and/or a server.

Additionally, although this patent discloses example systems includingsoftware or firmware executed on hardware, it should be noted that suchsystems are merely illustrative and should not be considered aslimiting. For example, it is contemplated that any or all of thesehardware and software components could be embodied exclusively inhardware, exclusively in software, exclusively in firmware or in somecombination of hardware, firmware and/or software. Accordingly, whilethe above specification described example systems, methods and articlesof manufacture, persons of ordinary skill in the art will readilyappreciate that the examples are not the only way to implement suchsystems, methods and articles of manufacture. Therefore, althoughcertain example methods, apparatus and articles of manufacture have beendescribed herein, the scope of coverage of this patent is not limitedthereto. On the contrary, this patent covers all methods, apparatus andarticles of manufacture fairly falling within the scope of the appendedclaims either literally or under the doctrine of equivalents.

What is claimed is:
 1. A method comprising: obtaining, via a processor,a billing record generated to track usage of a directory assistanceservice by a caller, the billing record comprising a first data objectconveyed to the caller in association with the usage of the directoryassistance service; querying, via the processor, a first directory withthe first data object of the billing record to obtain listinginformation associated with the first data object; and conveying acontact record including the obtained listing information to a deviceassociated with the caller.
 2. The method of claim 1, wherein thebilling record further comprises a second data object associated withthe caller, and further comprising storing the obtained listinginformation in a second directory in association with the second dataobject.
 3. The method of claim 2, further comprising querying a seconddirectory with the second data object to identify user recordsassociated with the second data object.
 4. The method of claim 1,wherein querying the first directory with the first data objectcomprises querying the first directory with a telephone number providedto the caller during the usage of the directory assistance service. 5.The method of claim 1, wherein conveying the contact record comprisestransferring the contact record to the user device prior to a userrequest for the contact record.
 6. The method of claim 1, wherein theuser device comprises a voice over Internet Protocol telephone.
 7. Themethod of claim 1, wherein the user device comprises a cellular phone.8. An apparatus, comprising: a memory having machine readableinstructions stored thereon; a processor to execute the instructions toperform operations comprising: obtaining a billing record generated totrack usage of a directory assistance service by a caller, the billingrecord comprising a first data object conveyed to the caller inassociation with the usage of the directory assistance service; queryinga first directory with the first data object of the billing record toobtain listing information associated with the first data object; andconveying a contact record including the obtained listing information toa device associated with the caller.
 9. The apparatus of claim 8,wherein the billing record further comprises a second data objectassociated with the caller, and further comprising storing the obtainedlisting information in a second directory in association with the seconddata object.
 10. The apparatus of claim 9, wherein the operationsfurther comprise querying a second directory with the second data objectto identify user records associated with the second data object.
 11. Theapparatus of claim 8, wherein querying the first directory with thefirst data object comprises querying the first directory with atelephone number provided to the caller during the usage of thedirectory assistance service.
 12. The apparatus of claim 8, whereinconveying the contact record comprises transferring the contact recordto the user device prior to a user request for the contact record. 13.The apparatus of claim 8, wherein the user device comprises a voice overInternet Protocol telephone.
 14. The apparatus of claim 8, wherein theuser device comprises a cellular phone.
 15. A tangible machine readablestorage medium comprising instructions that, when executed, cause amachine to perform operations comprising: obtaining a billing recordgenerated to track usage of a directory assistance service by a caller,the billing record comprising a first data object conveyed to the callerin association with the usage of the directory assistance service;querying a first directory with the first data object of the billingrecord to obtain listing information associated with the first dataobject; and conveying a contact record including the obtained listinginformation to a device associated with the caller.
 16. The storagemedium of claim 14, wherein the billing record further comprises asecond data object associated with the caller, and further comprisingstoring the obtained listing information in a second directory inassociation with the second data object.
 17. The storage medium of claim15, wherein the operations further comprise querying a second directorywith the second data object to identify user records associated with thesecond data object.
 18. The storage medium of claim 14, wherein queryingthe first directory with the first data object comprises querying thefirst directory with a telephone number provided to the caller duringthe usage of the directory assistance service.
 19. The storage medium ofclaim 14, wherein the user device comprises a voice over InternetProtocol telephone.
 20. The storage medium of claim 14, wherein the userdevice comprises a cellular phone.